home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1035 / 1035.xpi / chrome / 1clickweather.jar / content / 1clickweather / js / data / swa.js < prev   
Text File  |  2010-01-04  |  6KB  |  191 lines

  1. // ∩┐╜ 2005 The Weather Channel Interactive, Inc.  All Rights Reserved.
  2.  
  3. oDataSources.SWA = function(){ };
  4. oDataSources.SWA.prototype = new oDataSourcesStub;
  5.  
  6. oDataSources.SWA.prototype.setTooltip = function(){
  7.    try{
  8.       // first, we make a tooltip object
  9.       //var _tooltip = document.createElement("tooltip");            
  10.       var _tooltip = document.createElement("menupopup");      
  11.       _tooltip.setAttribute("style", "background-color: #ffffE1;");
  12.       
  13.           if(GlobalToolbarLocation != ToolbarLocations['StatusBar'])
  14.             _tooltip.setAttribute("class", "alertTooltip");        
  15.       
  16.       //_tooltip.setAttribute("class", "ttBody");
  17.       _tooltip.setAttribute("id", ToolbarContainers['SWA'].getID() + ".Tooltip"); // and give it an id      
  18.       
  19.       var Box = document.createElement("vbox");
  20.       _tooltip.appendChild(Box);
  21.  
  22.       var l = new oXUL.Label(Box, "Severe Weather for " + this.Data['dnam']);
  23.       l.Bold();
  24.       l.Make();
  25.    }catch(e){
  26.       debugLog("error creating swa tooltip: " + e);
  27.    }
  28.  
  29.    var alertLink = ''; 
  30.    var alertUC = '';
  31.    try{
  32.       for(var swaID in this.Data){
  33.          if(typeof(this.Data[swaID]['uc']) != "undefined"){                         
  34.             var link = this.Data[swaID]['l'] + '&cm_ven=1CW&cm_cat=FFv1.1.9&cm_pla=wx.com-bar&cm_ite=wx-severe-wx-alert&par=1CWFFv1.1.9&site=wx.com-bar';
  35.             //We replace this for tracking issues
  36.             link = link.replace('www.weather.com', '1cwffweb.weather.com');
  37.             var hBox = document.createElement("hbox");            
  38.             var vBox = document.createElement("vbox");
  39.             
  40.             hBox.appendChild(vBox);
  41.             XULSimple.Shim(vBox, 1, 1);
  42.             var icon = new oXUL.iconByID(vBox, "swa_bullet_" + this.Data[swaID]['uc']);
  43.             icon.setAttribute("onclick", "openLinkInNewTab('" + link + "'); DataContainers['SWA'].popupTooltip(1);");
  44.             icon.Make();
  45.  
  46.             var lbl = new oXUL.Label(hBox, this.Data[swaID]['t']);            
  47.             lbl.setAttribute("onclick", "openLinkInNewTab('" + link + "'); DataContainers['SWA'].popupTooltip(1);");
  48.             lbl.setClass("text-link");                        
  49.             lbl.Make();    
  50.             
  51.             Box.appendChild(hBox);            
  52.  
  53.             if(!alertLink){
  54.                alertLink = link;
  55.                alertUC = this.Data[swaID]['uc'];
  56.             }else if(alertUC < this.Data[swaID]['uc']){
  57.                alertLink = link;
  58.                alertUC = this.Data[swaID]['uc'];
  59.             }
  60.          }
  61.       }
  62.       ToolbarContainers['SWA'].setLink(alertLink);
  63.       this.setScreenXY(Box.width, Box.height);
  64.  
  65.       _tooltip.setAttribute("noautohide", true);
  66.       _tooltip.setAttribute("position", "before_end");      
  67.       _tooltip.setAttribute("align", "center");
  68.       
  69.       _tooltip.appendChild(Box);
  70.  
  71.    }catch(e){
  72.       debug('error setting swa tooltip: ' + e);
  73.    }
  74.  
  75.    try{
  76.       var p = document.getElementById(GlobalToolbarLocation);
  77.       var t = document.getElementById(ToolbarContainers['SWA'].getID() + ".Tooltip");
  78.       if(p && t)
  79.          p.removeChild(t);
  80.    }catch(e){
  81.       debugLog("error removing swa tooltip: " + e);
  82.    }
  83.    try{
  84.       document.getElementById(GlobalToolbarLocation).appendChild(_tooltip);
  85.    }catch(e){
  86.       debugLog("error appending tooltip: " + this.id + " " + e);
  87.    }
  88.  
  89.    // and force the popup to show
  90.    this.loadPopup(60);
  91. }
  92.  
  93. // parse an xml doc into our obs object
  94. oDataSources.SWA.prototype.parseFunc = function(xmlDoc){
  95.    this.oldData = this.Data;
  96.    this.Data = {}; // flush the Data hash
  97.  
  98.    this.parseHeader(xmlDoc);
  99.  
  100.    // do we have some severe weather alerts?
  101.    try{
  102.       var swa = xmlDoc.getElementsByTagName("swa")[0].childNodes;
  103.       var x = 0;
  104.       // loop through all the children under the swa node
  105.       for(x = 0; x < swa.length; x++){
  106.          try{
  107.             if(swa[x].childNodes.length > 1){
  108.                var alertID = swa[x].getAttribute("id");
  109.                this.Data[alertID] = {};
  110.                this.Data[alertID]['uc'] = swa[x].getAttribute("uc");
  111.                this.Data[alertID]['t'] = swa[x].getElementsByTagName('t')[0].firstChild.nodeValue;
  112.                this.Data[alertID]['l'] = swa[x].getElementsByTagName('l')[0].firstChild.nodeValue;
  113.             }
  114.          }
  115.          catch(e){
  116.           //  alert(e.message);
  117.          }
  118.  
  119.       }
  120.  
  121.       this.setPanel();
  122.       this.Finish();
  123.    }
  124.    // if there are no alerts, hide the panel
  125.    catch(e){
  126.       for(var p in this.PanelList){
  127.          var panel = this.PanelList[p];
  128.          ToolbarContainers[panel].Hide();
  129.       }      
  130.       this.Finish();
  131.    }
  132. }
  133.  
  134.  
  135. oDataSources.SWA.prototype.setPanel = function(){
  136.    try{
  137.       debugLog("creating SWA panels in SWA.setPanel");
  138.  
  139.       for(var p in this.PanelList){
  140.          var panel = this.PanelList[p];
  141.  
  142.          // now we make a pair of hboxs
  143.          var panelHbox = document.createElement("hbox");
  144.  
  145.          var i = new oXUL.iconByID(panelHbox, "toolbar_alert");
  146.          i.Context(ToolbarContainers['SWA'].getID() + ".Tooltip");
  147.          i.onClick("ToolbarContainers['SWA'].Link('swa');");
  148.          i.setAttribute("onmouseover", "DataContainers['SWA'].loadPopup();");
  149.          i.Make();
  150.  
  151.          ToolbarContainers[panel].Show();
  152.          ToolbarContainers[panel].drawFromHbox(panelHbox);
  153.       }
  154.       this.setTooltip();
  155.    }catch(e){
  156.       debugLog("error creating SWA panels in SWA.setPanel " + e);
  157.    }
  158. }
  159.  
  160. oDataSources.SWA.prototype.popupTooltip = function(hide){
  161.     if(GlobalInitFinished){
  162.         if(hide){
  163.             clearTimeout(this.Timer);
  164.              document.getElementById(ToolbarContainers['SWA'].getID() + ".Tooltip").hidePopup();
  165.           }else{
  166.             this.setScreenXY(0,0);
  167.  
  168.             //**-- Agregado
  169.             if(GlobalToolbarLocation == ToolbarLocations['StatusBar'])
  170.                 this.XY[1] = this.XY[1] - 40;
  171.                 
  172.              document.getElementById(ToolbarContainers['SWA'].getID() + ".Tooltip").showPopup(document.getElementById(ToolbarContainers['SWA'].getID()), this.XY[0], this.XY[1], -1, -1);
  173.           }
  174.        }
  175. }
  176.  
  177. oDataSources.SWA.prototype.loadPopup = function(timeout){    
  178.    //if(timeout){    
  179.       if(!GlobalDisablePopup){        
  180.          DataContainers['SWA'].popupTooltip();         
  181.          this.Timer = setTimeout(toolTip, (3500));
  182.       }
  183.    //}else{
  184.       
  185.    //}
  186. }
  187.  
  188.  
  189. function toolTip(){
  190.     DataContainers['SWA'].popupTooltip(1);
  191. }